themingengine: Reduce border to 0 on hidden sides
authorBenjamin Otte <otte@redhat.com>
Sun, 12 Jun 2011 20:58:10 +0000 (22:58 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 12 Jun 2011 21:00:25 +0000 (23:00 +0200)
Fixes drawing of expanders.

gtk/gtkthemingengine.c

index ae48b6d682800c352491a7adde477ba16aedfe60..76ebb9c6deec6310453b842b2c9e140012e1396d 100644 (file)
@@ -1633,6 +1633,20 @@ gtk_theming_engine_render_background (GtkThemingEngine *engine,
                               junction);
 }
 
+static void
+gtk_theming_engine_hide_border_sides (GtkBorder *border,
+                                      guint      hidden_side)
+{
+  if (hidden_side & SIDE_TOP)
+    border->top = 0;
+  if (hidden_side & SIDE_RIGHT)
+    border->right = 0;
+  if (hidden_side & SIDE_BOTTOM)
+    border->bottom = 0;
+  if (hidden_side & SIDE_LEFT)
+    border->left = 0;
+}
+
 static void
 render_frame_internal (GtkThemingEngine *engine,
                        cairo_t          *cr,
@@ -1657,6 +1671,7 @@ render_frame_internal (GtkThemingEngine *engine,
 
   gtk_theming_engine_get_border_color (engine, state, &border_color);
   gtk_theming_engine_get_border (engine, state, &border);
+  gtk_theming_engine_hide_border_sides (&border, hidden_side);
 
   gtk_theming_engine_get (engine, state,
                           "border-style", &border_style,